Entity

Entity - сущность.

В нашей методологии под сущностью подразумевается реальные бизнес-концепции, такие как клиенты, транзакции, продукты, рекламные кампании и т.д.

Каждая сущность характеризуется бизнес-атрибутами - полями, по которым можно уникально идентифицировать каждую запись (строку) в данных. Для каких-то сущностей достаточно одного поля, чтобы уникально её идентифицировать, а для каких-то, необходима комбинация из нескольких полей. Например:

  1. чтобы уникально идентифицировать сущность UtmParams - "UTM параметры", необходима комбинация сразу нескольких полей: utmSource, utmMedium, utmCampaign, utmTerm и utmContent,
  2. а чтобы описать сущность Account ("Аккаунт") достаточно одного поля - accountName

Описание сущностей приводится в конфиге metadata и используется при обработке данных на этапе hash (подробнее см. dbt Package и entity_hash).

Пример раздела entities в metadata:

entities: # словарь сущностей
  Account: # сущность "Аккаунт"
    keys: # список бизнес-атрибутов для этой сущности 
    - name: accountName
  Product: # сущность "Продукт"
    keys: # список бизнес-ключей для этой сущности
    - name: productName
  UtmParams:  # сущность "UTM параметры"
    keys: # список бизнес-атрибутов для этой сущности
    - name: utmSource
    - name: utmMedium
    - name: utmCampaign
    - name: utmTerm
    - name: utmContent
<...>